链客,专为开发者而生,有问必答!
此文章来自链客区块链技术问答社区,未经允许拒绝转载。
分布式系统中节点之间的同步形成区块链
分布式系统由Tanenbaum定义,“分布式系统是一组独立的计算机,在”分布式系统 — 原理和范例“中作为用户的单一,连贯的系统出现”。
区块链通过构建全球分布式系统,尝试实现分散的新数据存储和组织结构。
首先,定位到分布式系统的原因主要是可扩展性,位置和可用性。区块链也不例外。地理可扩展性,形成全球价值存储网络/信息保护区域,包括非集中式结构下的防篡改/零停机时间的可用性。这些未来都是使用分布式系统在block中实现的。
0.目录
X.区块链和分布式系统
1.简介(同步和整体流程概述)
2.时钟同步
2–1。物理时钟(时钟和时钟偏移)
2–2。 时钟同步算法(网络时间协议(NTP)/伯克利算法)
3.逻辑时钟
3–1。 Lamport的逻辑时钟(完全有序的多播)
3–2。 矢量时钟(因果订单组播)
4.独家控制
4–1。 集中算法
4–2。 分散算法
4–3。 分布式算法
5.选举算法
5–1。 欺负算法
5–2。 环算法
6.阻止链和同步作为分布式系统
6–1。 块链和时钟同步(块链和物理/逻辑时钟)
6–2。 块链和独占控制算法(PoW·PoS·BFT中的独占控制算法)
6–3。 块链和领导者选举算法(PoW·PoS·BFT中的领导者选择算法)
1.简介(同步和整体流程概述)
与集中式系统不同,在分布式系统中就时间达成一致并不容易。
在前一种情况下,可以基于全局共享时钟确定绝对顺序关系,但是在后一种情况下,由于存在时钟值错误和对应时间,因此难以共享绝对时间。
但是,绝对时间的顺序并不是绝对必要的,如果相对顺序是固定的,通常就足够了。我们如何同步分布式系统中的所有时钟?此外,需要哪些算法才能在分布式系统中实现一致性同步?
在本文中,将按以下顺序解释节点之间的同步。
时钟同步是如何发生的?
使用逻辑时钟和矢量时钟的相对排序方法
关于分布式系统一致性的排除控制算法
关于分布式系统中的领导选举算法
2.时钟同步
2–1. 物理时钟
时钟和时钟歪斜
大多数计算机都有保持时间的电路,这种设备称为“时钟”。这是基于频率的振动,该振动可以通过晶体类型,切割方法和向精确加工的石英增加张力时的压力大小明确定义。
虽然这个频率相当稳定,但不能保证不同计算机的所有晶体都能以完全相同的频率运行。由此引起的同步时间的差异称为时钟偏差。
在这种情况下,特别是在实时系统中,如何使多个时钟与现实时钟同步以及如何同步时钟是一个问题。
现实世界中的时间最初基于平均太阳秒,但现在铯133过渡9,192,631,770次的时间定义为1秒,并且定义了国际原子时间和通用协调时间(UTC)。为了向需要准确时间的人提供UTC,使用WWV并且时间以±10毫秒的精度提供。
2–2. 时钟同步算法
但是,大多数机器没有WWV接收器。因此,每台机器都需要时间跟踪和管理算法,以便所有机器都可以同步时间。
顺便提及,用于确定是否需要重新同步的错误,即时钟偏移,如下测量。
将H定义为每台机器计数的晶体振动引起的每秒中断次数(刻度数),并将C